
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>inedpl_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>inedpl_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void inedpl_c ( SpiceDouble           a,
                   SpiceDouble           b,
                   SpiceDouble           c,
                   ConstSpicePlane     * plane,
                   SpiceEllipse        * ellipse,
                   SpiceBoolean        * found    )
</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
   Find the intersection of a triaxial ellipsoid and a plane. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
 
   <a href="../req/ellipses.html">ELLIPSES</a> 
   <a href="../req/planes.html">PLANES</a> 
 </PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
 
   ELLIPSE 
   ELLIPSOID 
   GEOMETRY 
   MATH 
 

</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
 
   Variable  I/O  Description 
   --------  ---  -------------------------------------------------- 
   a          I   Length of ellipsoid semi-axis lying on the x-axis. 
   b          I   Length of ellipsoid semi-axis lying on the y-axis. 
   c          I   Length of ellipsoid semi-axis lying on the z-axis. 
   plane      I   Plane that intersects ellipsoid. 
   ellipse    O   Intersection ellipse, when found is SPICETRUE.
   found      O   Flag indicating whether ellipse was found. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
 
   a, 
   b, 
   c              are the lengths of the semi-axes of a triaxial 
                  ellipsoid.  The ellipsoid is centered at the 
                  origin and oriented so that its axes lie on the 
                  x, y and z axes.  a, b, and c are the lengths of 
                  the semi-axes that point in the x, y, and z 
                  directions respectively. 
 
   plane          is a CSPICE plane. 
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
 
   ellipse        is the CSPICE ellipse formed by the intersection 
                  of the input plane and ellipsoid. ellipse will 
                  represent a single point if the ellipsoid and 
                  plane are tangent. 
 
                  If the intersection of the ellipsoid and plane is 
                  empty, ellipse is not modified. 
 
 
   found          is SPICETRUE if and only if the intersection of the 
                  ellipsoid and plane is non-empty. 
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
 
   1)  If any of the lengths of the semi-axes of the input ellipsoid 
       are non-positive, the error SPICE(DEGENERATECASE) is 
       signalled. ellipse is not modified. found is set to SPICEFALSE.
 
   2)  If the input plane in invalid, the error will be diagnosed by 
       routines called by this routine. ellipse is not modified. 
       found is set to SPICEFALSE.
 
   3)  If the input plane and ellipsoid are very nearly tangent, 
       roundoff error may cause this routine to give unreliable 
       results. 
 
   4)  If the input plane and ellipsoid are precisely tangent, the 
       intersection is a single point.  In this case, the output 
       ellipse is degenerate, but found will still have the value 
       SPICETRUE.  You must decide whether this output makes sense for 
       your application. 
 </PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   An ellipsoid and a plane can intersect in an ellipse, a single 
   point, or the empty set. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   1)  Suppose we wish to find the limb of a body, as observed from 
       location loc in body-fixed coordinates.  The CSPICE routine 
       <a href="edlimb_c.html">edlimb_c</a> solves this problem.  Here's how <b>inedpl_c</b> is used in 
       that solution. 
 
       We assume loc is outside of the body. The body is modelled as 
       a triaxial ellipsoid with semi-axes of length a, b, and c. 
       The notation 
 
          &lt; x, y &gt; 
 
       indicates the inner product of the vectors x and y. 
 
       The limb lies on the plane defined by 
 
          &lt; x,  n &gt;  =  1, 
 
       where the vector n is defined as 
 
                      2              2              2
          ( loc[0] / a ,   loc[1] / b ,   loc[2] / c  )  
 
       The assignments 
 
          n[0] = loc[0] / (a*a);
          n[1] = loc[1] / (b*b);
          n[2] = loc[2] / (c*c);
 
       and the calls 
 
          <a href="nvc2pl_c.html">nvc2pl_c</a> ( n,  1.0,  &amp;plane ); 
 
          <b>inedpl_c</b> ( a,  b,  c,  &amp;plane,  &amp;limb, &amp;found ); 
 
          <a href="el2cgv_c.html">el2cgv_c</a> ( limb, center, smajor, sminor );
 
       will return the center and semi-axes of the limb. 
 
 
       How do we know that  &lt; x, n &gt; = 1  for all x on the limb? 
       This is because all limb points x satisfy 
 
          &lt; loc - x, surfnm(x) &gt;  =  0, 
 
       where surfnm(x) is any surface normal at x.  surfnm(x) is 
       parallel to the vector 
 
                         2            2            2
          v = (  x[0] / a ,   x[1] / b ,   x[2] / c   ) 
 
       so we have 
 
          &lt; loc - x, v &gt;  =  0, 
 
          &lt; loc, v &gt;      =  &lt; x, v &gt;  =  1  (from the original 
                                              ellipsoid 
                                              equation)
       and finally 
 
          &lt; x, n &gt;  =  1
          
       where n is as defined above.
 
 
 
   2)  Suppose we wish to find the terminator of a body.  We can 
       make a fair approximation to the location of the terminator 
       by finding the limb of the body as seen from the vertex of 
       the umbra; then the problem is essentially the same as in 
       example 1.  Let VERTEX be this location.  We make the 
       assignments 
 
          p[0] =   vertex[0] / (a*a);
          p[1] =   vertex[1] / (b*b);
          p[2] =   vertex[2] / (c*c);
 
       and then make the calls 
 
          <a href="nvc2pl_c.html">nvc2pl_c</a> ( p,  1.0,  &amp;plane ); 
 
          <b>inedpl_c</b> ( a,  b,  c,  &amp;plane, &amp;term, &amp;found ); 
 
       The CSPICE ellipse term represents the terminator of the 
       body. 
 
 </PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
 
   N.J. Bachman   (JPL) 
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
 
   -CSPICE Version 1.0.5, 06-FEB-2003 (EDW)

      Corrected a typo in the header documentation,
      input variable 'ellipse' not 'ellips'

   -CSPICE Version 1.0.0, 13-JUN-1999 (NJB)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   intersection of ellipsoid and plane 
 </PRE>
<h4>Link to routine inedpl_c source file <a href='../../../src/cspice/inedpl_c.c'>inedpl_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:24 2010</pre>

</body>
</html>

